import logging

import requests


logger = logging.getLogger(__name__)


class Session(requests.Session):
    """
        重写resquests.Sessiion类
    """
    def request(self, method, url, **kwargs):
        """
            调用继承父类的requests方法
        :param method:
        :param url:
        :param kwargs:
        :return:
        """

        # 将请求method和url加入日志里
        logger.info(f">>>>>>目标接口：{method} {url}")
        # 将请求参数加入日志里
        logger.info(f">>>>>>请求参数：{kwargs}")
        # 将常用的headers每次发送请求时，进行携带
        headers={
            "a": "12",
            "forwardId": "70",
            "h": "wanxue",
            "p": "1",
            "u": "ffffffff-8d13-a56b-7169-0c980033c587",
            "v": "5020501",
            "m": ""
        }
        if "headers" in kwargs:
            print(kwargs["headers"])
            kwargs["headers"].update(headers)
        kwargs.update({"headers":headers})

        resp = super().request(method, url, **kwargs)  # 通过父类方法，得到接口响应
        req = resp.request
        # 将请求头加入日志里
        logger.info(f">>>>>>请求头：{req.headers}")
        # 将响应信息加入日志里
        logger.info(f"<<<<<<状态码：{resp.status_code}")
        logger.info(f"<<<<<<响应头：{resp.headers}")
        logger.info(f"<<<<<<响应正文：{resp.content}")
        return resp
